// 直接在文件顶部定义全局Trace对象
/* global Trace */
if (typeof Trace === 'undefined') {
  var Trace = {
    addTask: function() {},
    newTask: function() {}
  };
}

/**
 * 水逆退散局小程序
 * @file 小程序入口文件
 * @author AI Assistant
 */

// 防止Trace未定义错误
if (typeof Trace === 'undefined') {
  global.Trace = {
    addTask: function() {},
    newTask: function() {}
  };
}

App({
  /**
   * 全局数据
   */
  globalData: {
    userInfo: null,
    fortuneData: null,
    version: '1.0.0'
  },
  
  /**
   * 小程序初始化时触发，全局只触发一次
   * @param {Object} options 启动参数
   */
  onLaunch: function(options) {
    // 初始化逻辑
    console.log('App launched with options:', options);
    
    // 获取系统信息
    const systemInfo = wx.getSystemInfoSync();
    this.globalData.systemInfo = systemInfo;
    
    // 全局错误处理
    wx.onError((res) => {
      console.error('App Error:', res);
    });
  },
  
  /**
   * 小程序启动或从后台进入前台显示时触发
   */
  onShow: function() {
    // 显示逻辑
    console.log('App shown');
  },
  
  /**
   * 小程序从前台进入后台时触发
   */
  onHide: function() {
    // 隐藏逻辑
    console.log('App hidden');
  },
  
  /**
   * 小程序发生脚本错误或API调用失败时触发
   * @param {String} error 错误信息
   */
  onError: function(error) {
    // 错误处理
    console.error('App onError:', error);
  },
  
  /**
   * 小程序要打开的页面不存在时触发
   * @param {Object} res 相关信息
   */
  onPageNotFound: function(res) {
    // 页面不存在处理
    console.error('Page not found:', res);
    wx.redirectTo({
      url: '/pages/index/index'
    });
  }
}) 